#include <string>

#ifndef TIME
#define TIME

/*------------------------------------------------------------
/ Time Header
/ By: Trevor Plint
/ Date: March 1 2011
/ Description: A definition of the Time Class. Defines the
/ attributes and methods for a time object. Allows the coder
/ to easily convert to time format when needed
------------------------------------------------------------*/

class Time{

private:

	//attributes
	int h;							//hours
	int m;							//minutes
	int date;
	int month;
	int year;

	//private methods
	int checkIfLegal();			
	int extractH(std::string _t);	
	int extractM(std::string _t);
	int fix();
public:

	//other methods
	Time(std::string _t);
	Time(int _h, int _m);
<<<<<<< .mine
	Time(int _m);
	Time::Time(int _h, int _m, int _date);
	Time(int _h, int _m, int _date, int _month, int _year);
=======
	Time(int _h, int _m, int _date, int _month, int _year);
>>>>>>> .r38
	Time();
	Time(const Time& t);
	~Time();

	//getting parts of time
	std::string getTime();
	int getH();
	int getM();
	int getDate();
	int getMonth();
	int getYear();

	//setting parts of time
	void setTime(std::string _t);
	void setTime(int _h, int _m);
	void setH(int _h);
	void setM(int _m);
	void setDate(int _date);
	void setMonth(int _month);
	void setYear(int _year);
	
	//increasing the time
	int addTime(std::string _t);
	int addTime(int _h, int _m);
	int addTime(int _m);
	int addTime(Time _t);

	//decreasing the time
	int subtractTime(std::string _t);
	int subtractTime(int _h, int _m);
	int subtractTime(int _m);

<<<<<<< .mine
	//compare method
	int Time::operator>(Time *_t);
	int Time::operator<(Time *_t);
	int Time::operator==(Time *_t);
	Time* Time::operator+(Time *_t);

=======
	//compare method
	int compareTimes (Time*);
>>>>>>> .r38
	//clone
	Time* Time::clone();


};

#endif
